フロントエンドエンジニアです。2年前に東京からIターンして福岡に来ました。
PEG Parser Generatorを作りたくなりました この記事はLINE Advent Calendar 2018の21日目の記事です。 こんにちは。LINE Fukuokaのフロントエンドエンジニアの米原(@h_demon)です。 PEG parser generatorを、Packrat Parsingという手法を使うように実装してみたので、今日はその話をしようと思います。 私がPEGを知ったのは5、6年前で、CoffeeScriptとかelmとかTypeScriptとか、AltJSが実用的なものとして認知され始めた時期でした。 きっかけは確かこの記事で、当時エンジニアになりたてだった私は、コンパイラの深い知識がない今の自分でもこれなら自分で言語が作れるのではないかというのに興奮したのを覚えています。その後自分で実際にbasic.jsというBASICからJavaScriptへのトランスパイラも試しに書いてみました。…が、途中で飽きてしまってPRINTとかIFとかの基本機能しか実装できていませんでした。 そこで今回、basic.jsを完成させるのをAdvent
この記事はLINE Advent Calendar 2017の19日目の記事です。 JavaScriptの気持ちを知りたい こんにちは、LINE FukuokaのフロントエンドエンジニアのYoneharaです。 そろそろクリスマスですね。フロントエンドエンジニアのみなさん、苦しんでいますか?私は苦しんでいます。2017年も暮れようというのに、いまだにブラウザやJavaScriptの気持ちが分からず、ユーザーに思うような快適なUXが提供できないことがあるからです。 JavaScriptの気持ち。ただ幸いなことに、我々はかなりの程度、それを分析的に知ることができます。GoogleやMozillaが自身のJavaScriptエンジンのコードを公開し、随所でそのアーキテクチャを解説してくれており、また豊富なトレーシング・プロファイリングの手段が用意されているからです。 今回の記事では、みなさんおなじみのChromeに採用されているV8というJavaScriptエンジンの、Hidden Classという最適化のための1つの仕組みをのぞいてみたいと思います。 動的型付け言語の辞書の実装には制約があ